Spring Initializr দিয়ে Spring Security প্রজেক্ট তৈরি করা

Java Technologies - স্প্রিং সিকিউরিটি (Spring Security) - Spring Security Setup এবং কনফিগারেশন
147

Spring Initializr একটি Spring Boot প্রজেক্ট তৈরি করার একটি দ্রুত এবং সহজ মাধ্যম। এটি ব্যবহার করে Spring Security অন্তর্ভুক্ত একটি প্রজেক্ট তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন।


ধাপ ১: Spring Initializr এ যান

  1. ব্রাউজারে Spring Initializr খুলুন।
  2. নিচের প্রয়োজনীয় ইনপুট প্রদান করুন:
    • Project: Maven বা Gradle
    • Language: Java
    • Spring Boot Version: Latest Stable Version
    • Group: আপনার পছন্দ অনুযায়ী (e.g., com.example)
    • Artifact: আপনার প্রজেক্টের নাম (e.g., spring-security-demo)
    • Name: প্রজেক্টের নাম
    • Dependencies: Spring Web, Spring Security, এবং (যদি প্রয়োজন হয়) Spring Boot DevTools

ধাপ ২: ডিপেনডেন্সি যোগ করুন

Spring Security প্রজেক্ট তৈরির সময় নিচের ডিপেনডেন্সিগুলি যুক্ত করুন:

  • Spring Web: ওয়েব অ্যাপ্লিকেশন তৈরি করতে।
  • Spring Security: সিকিউরিটি ফিচার যোগ করার জন্য।
  • Thymeleaf (ঐচ্ছিক): ফ্রন্ট-এন্ডে UI ইন্টিগ্রেশন করলে।

ধাপ ৩: প্রজেক্ট ডাউনলোড করুন

  1. Generate বোতামে ক্লিক করুন।
  2. একটি .zip ফাইল ডাউনলোড হবে। এটি আনজিপ করুন এবং আপনার পছন্দের IDE (e.g., IntelliJ IDEA, Eclipse) তে খুলুন।

ধাপ ৪: Maven পম (pom.xml) ফাইল চেক করুন

Spring Security এবং অন্যান্য ডিপেনডেন্সি যুক্ত হয়েছে কি না তা নিশ্চিত করুন।

pom.xml উদাহরণ:

<dependencies>
    <!-- Spring Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- Spring Security -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    
    <!-- Thymeleaf (Optional) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
    <!-- DevTools (Optional) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
</dependencies>

ধাপ ৫: প্রজেক্ট রান করুন

Spring Boot অ্যাপ্লিকেশন রান করার জন্য নিচের কমান্ড দিন:

mvn spring-boot:run

ডিফল্টভাবে, অ্যাপ্লিকেশনটি http://localhost:8080 এ চলবে।


ধাপ ৬: ডিফল্ট Spring Security পরীক্ষা করুন

Spring Security ডিফল্টভাবে সক্রিয় থাকবে:

  • ডিফল্ট ইউজারনেম: user
  • ডিফল্ট পাসওয়ার্ড: কনসোলে দেখতে পাবেন (e.g., Using generated security password: লাইনটিতে)।

ডিফল্ট লগইন পেজ:

Spring Security একটি ডিফল্ট লগইন ফর্ম সরবরাহ করে। ব্রাউজারে http://localhost:8080 এ যান, এবং লগইন ফর্মটি দেখুন।


ধাপ ৭: Spring Security কাস্টমাইজ করুন

১. কাস্টম সিকিউরিটি কনফিগারেশন:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/public/**").permitAll() // Public URLs
                .anyRequest().authenticated() // Others require authentication
            )
            .formLogin(form -> form
                .loginPage("/login")
                .permitAll()
            )
            .logout(logout -> logout
                .logoutUrl("/logout")
                .permitAll()
            );
        return http.build();
    }
}

২. ইন-মেমরি ইউজার যোগ করুন:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
public class InMemoryUserConfig {

    @Bean
    public InMemoryUserDetailsManager userDetailsManager() {
        UserDetails user = User.withDefaultPasswordEncoder()
            .username("user")
            .password("password")
            .roles("USER")
            .build();

        UserDetails admin = User.withDefaultPasswordEncoder()
            .username("admin")
            .password("admin")
            .roles("ADMIN")
            .build();

        return new InMemoryUserDetailsManager(user, admin);
    }
}

৩. লগইন পেজ কাস্টমাইজ করুন:

src/main/resources/templates/login.html যোগ করুন (Thymeleaf ব্যবহৃত হলে)।

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Login</title>
</head>
<body>
    <h1>Custom Login Page</h1>
    <form th:action="@{/login}" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" />
        <br />
        <label for="password">Password:</label>
        <input type="password" id="password" name="password" />
        <br />
        <button type="submit">Login</button>
    </form>
</body>
</html>

ধাপ ৮: প্রজেক্টের প্রাথমিক বৈশিষ্ট্য পরীক্ষা করুন

  1. কাস্টম লগইন পেজ কাজ করছে কি না তা চেক করুন।
  2. বিভিন্ন URL-এ অ্যাক্সেস নিয়ন্ত্রণ সঠিকভাবে কাজ করছে কি না তা পরীক্ষা করুন।

Spring Initializr দিয়ে তৈরি Spring Security প্রজেক্টটি আপনার প্রয়োজনমতো কাস্টমাইজ করা সহজ এবং এটি দ্রুত একটি নিরাপদ ওয়েব অ্যাপ্লিকেশন সেটআপ করতে সহায়ক।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...